package com.erytech.linktalk.web.client.framework;

import java.util.ArrayList;
import java.util.List;

public class DataSource {
	
	private List listenerList = new ArrayList();

	public void addDataUpdateListener(DataUpdateListener listener) {
		listenerList.add(listener);
	}

	public void removeDataUpdateListener(DataUpdateListener listener) {
		listenerList.remove(listener);
	}
	
	protected DataUpdateListener[] getDataUpdateListeners() {
		DataUpdateListener[] listeners = new DataUpdateListener[listenerList.size()];
		for (int i = 0; i < listenerList.size(); i++) {
			listeners[i] = (DataUpdateListener)listenerList.get(i);
		}
		return listeners;
	}
	
	protected void fireDataUpdateEvent(DataUpdateEvent event) {
		DataUpdateListener[] listeners = getDataUpdateListeners();
		for (int i = 0; i < listeners.length; i++) {
			listeners[i].onDataUpdateEvent(event);
		}
	}
	
}